home *** CD-ROM | disk | FTP | other *** search
/ TeX 1995 July / TeX CD-ROM July 1995 (Disc 1)(Walnut Creek)(1995).ISO / macros / latex209 / contrib / crc / remark.sty < prev   
Text File  |  1992-03-13  |  5KB  |  136 lines

  1. %%
  2. %%  This file name is ``remark.sty''
  3. %%
  4. %       ****************************************
  5. %       *         REMARK ENVIRONMENTS         *
  6. %       ****************************************
  7. %
  8. %  The user creates his own remark-like environments with the command
  9. %      \newremark{NAME}{TEXT}[COUNTER]  or
  10. %      \newremark{NAME}[OLDNAME]{TEXT}
  11. %  This defines the environment NAME to be just as one would expect a
  12. %  remark environment to be, except that it prints ``TEXT'' instead of
  13. %  ``Remark''.
  14. %
  15. %  If OLDNAME is given, then environments NAME and OLDNAME use the same
  16. %  counter, so using a NAME environment advances the number of the next
  17. %  NAME environment, and vice-versa.
  18. %
  19. %  If COUNTER is given, then environment NAME is numbered within COUNTER.
  20. %  E.g., if COUNTER = subsection, then the first NAME in subsection 7.2
  21. %  is numbered TEXT 7.2.1.
  22. %
  23. %  The way NAME environments are numbered can be changed by redefining
  24. %  \theNAME.
  25. %
  26. %  DOCUMENT STYLE PARAMETERS
  27. %
  28. %  \@rmkcounter{COUNTER} : A command such that
  29. %               \edef\theCOUNTER{\@rmkcounter{COUNTER}}
  30. %         defines \theCOUNTER to produce a number for a remark environment.
  31. %         The default is:
  32. %            BEGIN \noexpand\arabic{COUNTER} END
  33. %
  34. %  \@rmkcountersep : A separator placed between a remark number and
  35. %         the number of the counter within which it is numbered.
  36. %         E.g., to make the third remark of section 7.2 be numbered
  37. %         7.2-3, \@rmkcountersep should be \def'ed to '-'.  Its
  38. %         default is '.'.
  39. %
  40. %  \@beginremark{NAME}{NUMBER} : A command that begins a remark
  41. %         environment for a 'remark' named 'NAME NUMBER' --
  42. %         e.g., \@beginremark{Lemma}{3.7} starts Lemma 3.7.
  43. %
  44. %  \@opargbeginremark{NAME}{NUMBER}{OPARG} : A command that begins a remark
  45. %         environment for a 'remark' named 'NAME NUMBER' with optional
  46. %         argument OPARG -- e.g., \@beginremark{Lemma}{3.7}{Jones}
  47. %         starts `Lemma 3.7 (Jones):'.
  48. %
  49. %  \@endremark : A command that ends a remark environment.
  50. %
  51. % \newremark{NAME}{TEXT}[COUNTER] ==
  52. %   BEGIN
  53. %     if \NAME is definable
  54. %       then \@definecounter{NAME}
  55. %            if COUNTER present
  56. %              then \@addtoreset{NAME}{COUNTER} fi
  57. %                   \theNAME ==  BEGIN \theCOUNTER \@rmkcountersep
  58. %                                       eval\@rmkcounter{NAME}      END
  59. %              else \theNAME ==  BEGIN eval\@rmkcounter{NAME} END
  60. %            \NAME == \@rmk{NAME}{TEXT}
  61. %            \endNAME == \@endremark
  62. %       else  error
  63. %     fi
  64. %   END
  65. %
  66. % \newremark{NAME}[OLDNAME]{TEXT}==
  67. %   BEGIN
  68. %     if \NAME is definable
  69. %       then \theNAME == \theOLDNAME
  70. %            \NAME == \@rmk{OLDNAME}{TEXT}
  71. %            \endNAME == \@endremark
  72. %       else  error
  73. %     fi
  74. %   END
  75. %
  76. % \@rmk{NAME}{TEXT} ==
  77. %   BEGIN
  78. %    \refstepcounter{NAME}
  79. %    if next char = [
  80. %       then \@yrmk{NAME}{TEXT}
  81. %       else \@xrmk{NAME}{TEXT}
  82. %    fi
  83. %   END
  84. %
  85. % \@xrmk{NAME}{TEXT} ==
  86. %   BEGIN
  87. %    \@beginremark{TEXT}{\theNAME}
  88. %    \ignorespaces
  89. %   END
  90. %
  91. % \@yrmk{NAME}{TEXT}[OPARG] ==
  92. %   BEGIN
  93. %    \@opargbeginremark{TEXT}{\theNAME}{OPARG}
  94. %    \ignorespaces
  95. %   END
  96. %
  97. \def\newremark#1{\@ifnextchar[{\@ormk{#1}}{\@nrmk{#1}}}
  98.  
  99. \def\@nrmk#1#2{%
  100. \@ifnextchar[{\@xnrmk{#1}{#2}}{\@ynrmk{#1}{#2}}}
  101.  
  102. \def\@xnrmk#1#2[#3]{\expandafter\@ifdefinable\csname #1\endcsname
  103. {\@definecounter{#1}\@addtoreset{#1}{#3}%
  104. \expandafter\xdef\csname the#1\endcsname{\expandafter\noexpand
  105.   \csname the#3\endcsname \@rmkcountersep \@rmkcounter{#1}}%
  106. \global\@namedef{#1}{\@rmk{#1}{#2}}\global\@namedef{end#1}{\@endremark}}}
  107.  
  108. \def\@ynrmk#1#2{\expandafter\@ifdefinable\csname #1\endcsname
  109. {\@definecounter{#1}%
  110. \expandafter\xdef\csname the#1\endcsname{\@rmkcounter{#1}}%
  111. \global\@namedef{#1}{\@rmk{#1}{#2}}\global\@namedef{end#1}{\@endremark}}}
  112.  
  113. \def\@ormk#1[#2]#3{\expandafter\@ifdefinable\csname #1\endcsname
  114.   {\global\@namedef{the#1}{\@nameuse{the#2}}%
  115. \global\@namedef{#1}{\@rmk{#2}{#3}}%
  116. \global\@namedef{end#1}{\@endremark}}}
  117.  
  118. \def\@rmk#1#2{\refstepcounter
  119.     {#1}\@ifnextchar[{\@yrmk{#1}{#2}}{\@xrmk{#1}{#2}}}
  120.  
  121. \def\@xrmk#1#2{\@beginremark{#2}{\csname the#1\endcsname}\ignorespaces}
  122. \def\@yrmk#1#2[#3]{\@opargbeginremark{#2}{\csname
  123.        the#1\endcsname}{#3}\ignorespaces}
  124.  
  125. %DEFAULT VALUES
  126. \def\@rmkcounter#1{\noexpand\arabic{#1}}
  127. \def\@rmkcountersep{.}
  128. %deleted September 2, 1986 MDK
  129. %\def\@makermknumber#1#2{\bf #1 #2:}
  130. \def\@beginremark#1#2{\trivlist \item[\hskip \labelsep{\bf #1\ #2}]}
  131. \def\@opargbeginremark#1#2#3{\trivlist
  132.       \item[\hskip \labelsep{\bf #1\ #2\ (#3)}]}
  133. \def\@endremark{\endtrivlist}
  134.  
  135.  
  136.